// /// <reference path="../hjc.ts" />
// namespace game {

// 	//内置参数
// 	// const $kb: KeyBoard = new KeyBoard();
// 	// const $layerMgr = hjc.LayerManager.instance;
// 	// const $effectMgr = hjc.EffectManager.instance;
// 	// const $panelMgr = hjc.PanelManager.instance;
// 	// const $dialogMgr = hjc.DialogManager.instance;
// 	// const $sceneMgr = hjc.SceneManager.instance;
// 	// const $mediatorMgr = hjc.MediatorManager.instance;
// 	// const $proxyMgr = hjc.ProxyManager.instance;
// 	// const $ctrlMgr = hjc.ControllerManager.instance;
// 	let $inited: boolean = false;
// 	let $paused: boolean = false;
// 	let $over: boolean = true;
// 	let $first: boolean = true;

// 	/**
// 	 * 获取控制器对象
// 	 * @param ctrlClass 继承自hjc.Controller的控制器
// 	 * @return 控制器对象
// 	*/
// 	export function controller<C extends hjc.Controller>(ctrlClass: new () => C): C | null { return hjc.ControllerManager.instance.getByClass(ctrlClass); }

// 	/**
// 	 * 获取代理对象
// 	 * @param proxyClass 继承自hjc.Proxy的代理类
// 	 * @return 代理对象
// 	*/
// 	export function proxy<P extends hjc.Proxy>(proxyClass: new () => P): P | null { return hjc.ProxyManager.instance.getByClass(proxyClass); }

// 	/**
// 	 * 获取中介者对象
// 	 * @param mediator 继承自hjc.Mediator的中介者类
// 	 * @return 中介者对象
// 	*/
// 	export function mediator<M extends hjc.Mediator>(mediatorClass: new () => M): M | null { return hjc.MediatorManager.instance.getByClass(mediatorClass); }

// 	/**
// 	 * 获取场景对象
// 	 * @param sceneClass 继承自hjc.Scene的场景类
// 	 * @return 场景对象
// 	*/
// 	export function scene<S extends hjc.Scene>(sceneClass: new (ts?: hjc.TScene) => S): S | null { return hjc.SceneManager.instance.getByClass(sceneClass); }

// 	/**
// 	 * 获取面板对象
// 	 * @param panelClass 继承自hjc.Panel的面板类
// 	 * @return 面板对象
// 	*/
// 	export function panel<P extends hjc.Panel>(panelClass: new () => P): P | null { return hjc.PanelManager.instance.getByClass(panelClass); }

// 	/**
// 	 * 获取对话框对象
// 	 * @param dialogClass 继承自hjc.Dialog的对话框类
// 	 * @return 对话框对象
// 	*/
// 	export function dialog<D extends hjc.Dialog>(dialogClass: new () => D): D | null { return hjc.DialogManager.instance.getByClass(dialogClass); }

// 	// /**
// 	//  * 获得当前场景对象
// 	//  * @return 当前场景对象
// 	// */
// 	// export function curScene(): hjc.Scene | null { return hjc.SceneManager.instance.getCur(); }

// 	/**
// 	 * 立刻播放特效（由EffectManager管理的全局特效）
// 	 * @param te 特效参数
// 	*/
// 	export function effect(te: hjc.TEffect): void { hjc.EffectManager.instance.playEffect(te); }

// 	/**
// 	 * 注册全局通知的监听
// 	 * @param type 通知名称（建议定义为全局静态常量）
// 	 * @param notified 被通知调用（通常为this对象的方法）
// 	 * @param observer 观察者（通常为this对象）
// 	*/
// 	export function on(type: string, notified: Function, observer: any): void { hjc.Global.instance.attach(type, notified, observer); }

// 	/**
// 	 * 注销全局通知的监听
// 	 * @param type 通知名称（建议定义为全局静态常量）
// 	 * @param notified 被通知调用（通常为this对象的方法）
// 	 * @param observer 观察者（通常为this对象）
// 	*/
// 	export function off(type: string, notified: Function, observer: any): void { hjc.Global.instance.detach(type, notified, observer); }

// 	/**
// 	 * 发送全局通知
// 	 * @param type 通知名称（建议定义为全局静态常量）
// 	 * @param data 数据体 *默认无
// 	 * @param source 通知发起者 *默认无
// 	*/
// 	export function notify(type: string, data?: any, source?: any): void { hjc.Global.instance.dispatch(type, data, source); }

// 	/**
// 	 * 进入指定场景
// 	 * @param sceneClass 继承自hjc.Scene的场景类
// 	 * @param top 是否将该场景至于顶部 *默认代替上一个场景 
// 	 * @param params 传递给面板的参数罗列
// 	*/
// 	export function enter(sceneClass: hjc.SceneClass, top?: boolean, ...params: any[]): void { hjc.ViewManager.instance.enterScene(sceneClass, top, ...params); }

// 	/**
// 	 * 立刻展示指定面板
// 	 * @param panelClass 继承自hjc.Panel的面板类
// 	 * @param params 传递给面板的参数罗列
// 	*/
// 	export function showPanel<P extends hjc.Panel>(panelClass: new () => P, ...params: any[]): void { return hjc.PanelManager.instance.show(panelClass, ...params); }

// 	/**
// 	 * 立刻展示指定对话框
// 	 * @param dialogClass 继承自hjc.Dialog的对话框类
// 	 * @param params 传递给对话框的参数罗列
// 	*/
// 	export function showDialog<D extends hjc.Dialog>(dialogClass: new () => D, ...params: any[]): void { return hjc.DialogManager.instance.show(dialogClass, ...params); }

// 	/**
// 	 * 从对象池获取对象
// 	 * @description 为避免egret发布时泛型不可用，需要对象池管理的类请加上静态量：$className:string
// 	 * @param objClass 对象类
// 	 * @return 获得的对象
// 	*/
// 	export function claim<Type>(objClass: new () => Type): Type { return hjc.Pool.instance.claim(objClass); }

// 	/**
// 	 * 从对象池释放对象
// 	 * @param obj 对象
// 	 * @param 如果对象是显示对象，是否从显示列表移除 *默认是
// 	*/
// 	export function free(obj: any, remove: boolean = true): any { hjc.Pool.instance.free(obj, remove); }

// 	/**
// 	 * 以指定方式启动游戏
// 	 * @description 请参考TInitParams定义
// 	 * @param params 启动参数
// 	*/
// 	export function init(params: hjc.TInitParams): any {
// 		if ($inited) { console.warn('game already inited!'); return game; }
// 		$inited = true;
// 		game.initParams = params;
// 		hjc.InitManager.instance.init(params);
// 		return game;
// 	}

// 	/**
// 	 * 获得启动参数
// 	 * @return 启动参数
// 	*/
// 	export let initParams: hjc.TInitParams = null;

// 	/**
// 	 * 获得/设置启动参数
// 	 * @return 启动参数
// 	*/
// 	export let configs: hjc.TConfigs = null;

// 	/**打印参数*/
// 	export let log: any = {};

// 	// /**
// 	//  * 获得游戏的指定层级
// 	//  * @description 请参考TLayers定义
// 	//  * @description layer.cover → 通信遮罩层
// 	//  * @description layer.info → 通用信息层
// 	//  * @description layer.effect → 通用特效层
// 	//  * @description layer.dialog → 对话框层
// 	//  * @description layer.panel → 面板层
// 	//  * @description layer.menu → 通用菜单层
// 	//  * @description layer.main → 主场景层
// 	//  * @return 层级定义对象
// 	// */
// 	export let layer: hjc.LayerManager;

// 	/**
// 	 * 获得游戏帧管理器
// 	 * @return 帧管理器
// 	*/
// 	export let ticker: tools.Ticker = tools.Ticker.instance;

// 	/**
// 	 * 获得游戏特效生成器
// 	 * @description 用于产生大量帧动画（需要在启动参数中设置eg:true）
// 	 * @return 特效生成器
// 	*/
// 	export let eg: effect.Generator = null;

// 	/**
// 	 * 获得游戏长连接
// 	 * @description 需要在启动参数中设置websocket:{ip:'xxxx',port:xxxx}参数
// 	 * @return 长连接
// 	*/
// 	export let ws: tools.websocket = null;

// 	/**
// 	 * 获得键盘辅助
// 	 * @return 键盘辅助
// 	*/
// 	// export function keyboard(): KeyBoard { return $kb; }

// 	export let width: number = 0;
// 	export let height: number = 0;
// 	export let container: eui.UILayer = null;//场景容器（包含：至上的留边+游戏层级）

// 	/** 是否为开发环境 */
// 	export let dev: boolean;
// 	/** 是否为测试状态 */
// 	export let test: boolean;

// 	/** 默认加载 */
// 	export let loading: hjc.Loading;





// 	export let curScene: hjc.Scene;
// 	export let topPanel: hjc.Panel;
// 	export let topDialog: hjc.Dialog;
// }